load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "skia_filegroup")

package(
    default_applicable_licenses = ["//:license"],
)

licenses(["notice"])

exports_files_legacy()

# This is a separate gropu to make it easier to enforce that Graphite does not
# include Ganesh-specific Vulkan headers.
skia_filegroup(
    name = "shared_public_hdrs",
    srcs = [
        "VulkanBackendContext.h",
        "VulkanExtensions.h",
        "VulkanMemoryAllocator.h",
        "VulkanMutableTextureState.h",
        "VulkanTypes.h",
    ],
)

# These are Ganesh specific. In a perfect world, we'd move these to
# //include/gpu/ganesh/vk, but that involves updating several clients.
skia_filegroup(
    name = "ganesh_public_hdrs",
    srcs = [
        "GrVkTypes.h",
    ],
)

# Group is exported to //gn/gpu.gni:skia_gpu_vk_public.
skia_filegroup(
    name = "public_hdrs",
    srcs = [
        ":ganesh_public_hdrs",
        ":shared_public_hdrs",
    ],
    visibility = [
        "//include/gpu:__pkg__",
        "//src/gpu/ganesh/vk:__pkg__",
        "//src/gpu/vk:__pkg__",
    ],
)

generate_cpp_files_for_headers(
    name = "headers_to_compile",
    headers = [
        "VulkanBackendContext.h",
        "VulkanMemoryAllocator.h",
        "VulkanTypes.h",
    ],
)
